#ifndef LOG_HEADER
#define LOG_HEADER
#include<string>
#include<fstream>
#include<sstream>
#include<iostream>
#include<algorithm>
#include<iterator>
#include<vector>
#include<map>
#include<cstdlib>
#include<ctime>
#include<cmath>
#include "def.hpp"
#include "utils.hpp"
#include "singleton.hpp"

namespace Puza{
  /* This class is a Singleton */
  class Logger{
  public:
    void Start();
    void End();
    string GetCurrentTime();
    void PutString(string);
    Logger();
  private:
    string log_file_name;
  };
  
  typedef Singleton<Logger> PuzaLogger;
};

#endif
